The disclosure relates generally to controlling power consumption and more particularly to controlling power consumption associated with a computing device having a first processor and a second processor.
Common computing devices include multiple processors that are configured to perform different types of operations, such as a central processing unit (CPU) and a graphics processing unit (GPU). As known in the art, a CPU is primarily responsible for executing instructions to perform general purpose operations, such as executing an operating system of the computing device and executing instructions for software applications supported by the computing device, which in turn may include performing data processing calculations supported by such software applications, etc. As further known in the art, the CPU may be in communication with a GPU, where the GPU may be configured for specialized processing of graphics information for display, such as by supporting highly parallel processing needed for real-time graphics processing.
Some computing devices provide an end user with the ability to adjust a desired performance level of a processor such as the CPU. The performance level of a processor may correspond to an operating frequency and/or an operating voltage of the processor, where higher operating frequencies and operating voltages generally correspond to better overall performance such as, for example, faster instruction execution times and, in the example of a GPU, higher-quality output graphics data. Some computing devices provide a graphical user interface (GUI) that allows a user to drag a slider or control bar to indicate the desired performance level of the CPU. Thus, the user may drag the slider or control bar to a position that indicates a particular percentage performance level as the desired performance level, and the operating frequency and/or operating voltage of the CPU may be adjusted accordingly. The computing device also automatically controls the performance level of the GPU based on factors such as a loading of the GPU. The actual power consumed by a processor operating at a particular performance level will vary based on the loading of the processor as affected by, for example, the number and type of instructions being executed or in a queue to be executed by the processor.
Additionally, some computing devices allow a user to prioritize the applications that are currently executing on the computing device so that, for example, the CPU and/or GPU will maintain a higher quality of service (QoS) with respect to those applications that are given higher priority levels in, for example, a low battery situation in which it is not possible to maintain an optimal QoS with respect to all applications executing on the computing device. The applications that the user specifies as higher priority may include applications that are more CPU-intensive, such as a spreadsheet program; applications that are more GPU-intensive, such as a video game; or a combination of the two. Such computing devices may automatically control the performance levels of the CPU and the GPU to, for example, increase a performance level of the CPU when the higher-priority applications are more CPU-intensive and increase a performance level of the GPU when the higher-priority applications are more GPU-intensive.
As the number and variety of computing applications continue to increase, it will be necessary to provide users with enhanced ability to directly control performance levels associated with processors that are configured to perform different types of operations, such as a CPU and a GPU, in order to allow optimal user experience. At the same time, it will be necessary to ensure that such enhanced ability for a user to directly control performance levels associated with multiple processors does not result in operating conditions outside of those which the computing device is able to handle. For example, it will be necessary to ensure that such enhanced user control maintains control of power consumption associated with the processors so that an integrated circuit or circuits on which the processors are implemented does not consume more power than it is rated to consume.